home *** CD-ROM | disk | FTP | other *** search
- ┌──────────────────────────────────────────────────────────────────────────┐
- │┌────────────────────────────────────────────────────────────────────────┐│
- ││ ││
- ││ Kaplumbaºa EXE'ler ││
- ││ ││
- │└────────────────────────────────────────────────────────────────────────┘│
- │ PS 28 · Kasìm'95 A.Serdar Hazar │
- └──────────────────────────────────────────────────────────────────────────┘
-
-
- Kendi yazdìºìnìz programlarìn ayarlarìnì baƒka bir dosyada (örneºin
- Ayarlar.Cfg gibi) saklamak yerine .EXE dosyanìn içinde saklayabilirsiniz.
- Veya .EXE'nin sonuna küçük notlar ekleyebilirsiniz. Exe dosyalarda bulunan
- header'da dosyanìn belleºe yüklenecek uzunluºu bulunmaktadìr. Bu nedenle
- dosyaya ekleyeceºimiz veri belleºe yüklenmez ve hiç bir soruna yol açmaz.
- Dosya Pklite ile sìkìƒtìrìlsa bile program iƒlevini gerçekleƒtiriyor.
- Ancak LzExe 'de bazì sorunlar çìktìºìnì itiraf etmeliyim. Bu EXE'nin sonuna
- eklediºimiz String, Overlay gibi görünüyor. Pklite bunu aynen sakladìºì
- halde, LzExe bu Overlay kìsmì, kesip atìyor.
-
- Program ilk önce, EXE dosyanìn Header'ìna bakarak, dosyanìn olmasì
- gereken boyunu öºreniyor. EXE Dosyanìn gerçek boyu = 2.Word+((3.Word-1)*512)
- ƒeklinde küçük bir hesap yapìlarak bulunur. Daha sonra FileSize komutu ile
- dosyanìn gerçek boyunu buluyor. ÿkisi de aynì ise "Henüz bir ƒey
- yazìlmamìƒ" mesajìnì ekrana getiriyor ve dosyanìn sonuna eklenecek olan
- mesajì soruyor. Sonuçlar farklì ise dosyanìn sonundaki mesajì ekrana yazìyor
- ve yeni mesajìn girilmesini istiyor. Eºer hiçbirƒey yazìlmayìp, Enter'e
- basìlìrsa, dosyayì ilk (normal) haline getiriyor. (Truncate(dosya);)
- Hiç birƒey yazìlmayìp, Enter'e basìlìnca dosyanìn sonundaki mesajìn aynì
- kalmasìnì istiyorsanìz, {*} ile iƒaretli satìrlarì;
- for i:=1 to length(mes) do buf[i]:=ord(mes[i]);
- satìrìnìn altìna yazmanìz gerekiyor.